﻿package com.tudou.utils
{
    import flash.text.*;

    public class CutString extends Object
    {

        public function CutString()
        {
            return;
        }// end function

        public static function formatNumber(param1:String) : String
        {
            return param1.replace(/(\d)(?=(?:\d{3})+(?!\d))""(\d)(?=(?:\d{3})+(?!\d))/g, "$1,");
        }// end function

        public static function isChinese(param1:String) : Boolean
        {
            if (param1 == null || param1.length <= 0)
            {
                return false;
            }
            var _loc_2:* = param1.substr(0, 1);
            var _loc_3:* = _loc_2.match(/[^\;
            return _loc_3 == 1 ? (true) : (false);
        }// end function

        public static function removeSpecial(param1:String) : String
        {
            param1 = param1.replace("\n", "");
            param1 = param1.replace("\r", "");
            param1 = param1.replace("\t", "");
            return param1;
        }// end function

        public static function cutString(param1:String, param2:uint, param3:TextField = null) : String
        {
            var _loc_5:String = null;
            if (param1 == null || param1.length == 0 || param2 == 0)
            {
                return "";
            }
            var _loc_4:String = "";
            if (param3 != null)
            {
                _loc_4 = param3.text;
                _loc_5 = param3.autoSize;
            }
            else
            {
                param3 = new TextField();
            }
            param1 = removeSpecial(param1);
            var _loc_6:* = param1;
            param3.autoSize = TextFieldAutoSize.LEFT;
            param3.text = "";
            var _loc_7:int = 0;
            while (_loc_7 < param1.length)
            {
                
                if (param3.width <= param2)
                {
                    param3.appendText(param1.charAt(_loc_7));
                }
                else
                {
                    _loc_6 = param1.substr(0, (_loc_7 - 1));
                    break;
                }
                _loc_7++;
            }
            param3.text = _loc_4;
            param3.autoSize = _loc_5;
            return _loc_6;
        }// end function

        public static function justProcess(param1:String, param2:uint = 20) : String
        {
            if (param1 == null || param1.length == 0)
            {
                return "";
            }
            var _loc_3:* = param2;
            var _loc_4:String = "";
            var _loc_5:int = 0;
            while (_loc_5 < param1.length)
            {
                
                if (_loc_3 <= 0)
                {
                    return _loc_4;
                }
                if (isChinese(param1.charAt(_loc_5)))
                {
                    _loc_3 = _loc_3 - 2;
                }
                else
                {
                    _loc_3 = _loc_3 - 1;
                }
                _loc_4 = _loc_4 + param1.charAt(_loc_5);
                _loc_5++;
            }
            return _loc_4;
        }// end function

        public static function process(param1:String, param2:uint = 20) : String
        {
            if (param1 == null || param1.length == 0)
            {
                return "";
            }
            param1 = removeSpecial(param1);
            var _loc_3:* = param2;
            var _loc_4:String = "";
            var _loc_5:int = 0;
            while (_loc_5 < param1.length)
            {
                
                if (_loc_3 <= 0)
                {
                    return _loc_4;
                }
                if (isChinese(param1.charAt(_loc_5)))
                {
                    _loc_3 = _loc_3 - 2;
                }
                else
                {
                    _loc_3 = _loc_3 - 1;
                }
                _loc_4 = _loc_4 + param1.charAt(_loc_5);
                _loc_5++;
            }
            return _loc_4;
        }// end function

    }
}
